from playwright.sync_api import sync_playwright, expect, Page
from interface.page_login_save_cookie import page_login_save_cookies, 跳转


def pw_test(page: Page):
    # 如果使用 Page 则可以不用定义playwright、browser、context、page 可直接使用page进行调用
    playwright = sync_playwright().start()
    # 浏览器实例False 打开浏览器执行， True是不打开浏览器执行
    browser = playwright.chromium.launch(headless=False)
    # 上下文
    context = browser.new_context()
    # 新开窗，不保留缓存
    # page = browser.new_page()
    # 页面对象，保留缓存
    page = context.new_page()
    # 导航到某个网页
    page.goto("https://baidu.com")
    # 暂停弹窗录制框
    # page.pause()
    # type 模拟如果输入，dalay是表示慢输入
    page.get_by_placeholder("输入账号").type("123456", delay=300)
    # fill 是复制粘贴效果
    page.get_by_placeholder("输入账号").fill("123456")
    # expect 断言 严谨只找其中一个
    expect(page).to_have_title("断言元素")
    # nth从多个中找最后一个，to_be_visible是是否存在 .last 找最后一个 first 找到第一个
    expect(page.get_by_text("元素").nth(-1)).to_be_visible(timeout=300)
    # assert 判断是否存在  count多少个
    assert page.get_by_text("元素").count()

    context.close()
    browser.close()


def test_pw_test(page):
    page_login_save_cookies(page, "m18515393438@163.com", "chenshi0802!")
    page.wait_for_timeout(5000)
    跳转(page, "/ship/products")
    page.wait_for_timeout(5000)
